S3 バケット内の名称空フォルダを削除する方法
困っていた内容
S3 バケットに名前が空のフォルダが存在します。
S3 コンソールでこのフォルダを削除しようとしても、削除ボタンが押せません。root ユーザーの権限が必要なのでしょうか?
どう対応すればいいの?
root ユーザーの権限は必要ありません。S3 バケット内の名前が空のフォルダを削除する方法は、以下の 2 通りあります。
- 空のフォルダ内のすべてのオブジェクトを削除する(S3 コンソールのみで実施可能)
- AWS CLI で以下コマンドを実施する
$ aws s3api list-objects-v2 --query 'Contents[*].Key' --bucket <バケット名> | grep // > "blog//test", # ListObjectsV2 API では S3 の名称空フォルダを「//」と表現します。 $ aws s3 rm 's3://<バケット名>/blog//' --recursive > delete: s3://<バケット名>/blog//test $ aws s3api list-objects-v2 --query 'Contents[*].Key' --bucket <バケット名> | grep // > # 出力結果から "blog//test", がなくなったので削除成功